const bcrypt = require('bcrypt');

// 异步方式（推荐）
const hashPassword = async (password) => {
  // 异步生成盐值，不会阻塞事件循环
  const salt = await bcrypt.genSalt(10);
  return bcrypt.hash(password, salt);
};

/**
 * 验证密码（异步）
 * @param {*} password 
 * @param {*} hash 
 * @returns 
 */
const comparePassword = async (password, hash) => {
  return bcrypt.compare(password, hash);
};

//测试函数
//async function test (password) {
//  // 同步生成盐值，会阻塞事件循环
//  const encrypt = await hashPassword(password);
//  console.log(await comparePassword(password, encrypt));
//}
//test('123456');

module.exports = {
  hashPassword,      // 推荐使用
  comparePassword,   // 推荐使用
};
